﻿#pragma once
#include <QObject>
#include "unstackalg_data.h"


class AlgorithmVisual
{
public:
	AlgorithmVisual() {};
	virtual ~AlgorithmVisual() {};

	// 拆垛算法初始化

	virtual int Init(const unstack::visAlgParam& param) = 0;

	// 拆垛算法计算
	virtual  bool Caculate(const unstack::VisAlgInput& input, Position& pos, unstack::VisAlgOutput& out) = 0;

};

#define AlgVisual_IID "com.visual"

// 拆垛算法插件接口类
// 定义拆垛算法插件接口，包括创建拆垛算法实例和插件信息等

class AlgorithmVisualPulgin
{
public:
	AlgorithmVisualPulgin() {};
	virtual ~AlgorithmVisualPulgin() {};

	virtual AlgorithmVisual* CreateAlgorithm() = 0;
};

Q_DECLARE_INTERFACE(AlgorithmVisualPulgin, AlgVisual_IID)
